package com.dkm.orproject.dkmoa.service.jurisdiction;

import com.dkm.orproject.dkmoa.domain.OaRole;
import com.dkm.orproject.dkmoa.domain.OaRolePersonnel;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName : OaRoleService  //类名
 * @Description : 角色服务接口  //描述
 * @Author : 易嵘  //作者
 * @Date: 2020-08-13 14:44  //时间
 */
public interface OaRoleService {
    /**
     * 根据id删除
     *
     * @param pkRoleId 角色ID
     * @return 是否删除
     */
    int delete(Long pkRoleId);

    /**
     * 增加角色
     * @param  ids 权限id的集合
     * @param record 角色的信息
     * @return 是否更新成功
     */
    int insert(OaRole record,Long[] ids);

    /**
     * 根据id 查看角色的信息
     *
     * @param pkRoleId 角色的Id
     * @return 角色的信息
     */
    OaRole selectBypkRoleId(Long pkRoleId);

    /**
     * 更新角色
     *
     * @param record 角色的信息
     * @return 是否更新成功
     */
    int update(OaRole record,Long[] ids);

    /**
     * 逻辑删除
     *
     * @param pkRoleId 角色的Id
     * @param updatedBy 更新人
     * @param updatedTime 更新时间
     * @return 是否更新成功
     */
    int updateById( Long pkRoleId, String updatedBy, String updatedTime);

    /**
     * 批量物理删除
     *
     * @param list 角色id的集合
     * @return 删除的行数
     */
    int deleteAll(List<Long> list);

    /**
     * 批量逻辑删除
     *
     * @param list 角色id的集合
     * @return 删除的行数
     */

    int updateAll(List<Long> list, @Param("updatedBy") String updatedBy, String date);

    /**
     * 查看所有角色
     * @return 角色的集合
     */
    List<OaRole> findByAll();

    /**
     * 查看所有的
     * @param role      角色
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 角色的集合
     */
    List<OaRole> findAll( OaRole role, Integer page, Integer limit, String startTime,String endTime);

    /**
     * 统计数量
     * @param role      角色
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 数量
     */
    Long rowcount( OaRole role,String startTime,String endTime);
   /**
     * 根据人员id查看他的角色
     * @param personnelId 人员id
     * @return 集合
     */
   OaRolePersonnel findByIds(Long personnelId);
}
